A wide variety of flash-memory-card standards have emerged, such as Compact Flash (CF), Memory Stick (MS), Multi-Media Card/Secure Digital (MMC/SD), and micro versions of SD. Since an end user may use any or all of these formats, card readers often have many slots to accommodate these different flash-card formats.
Peripheral devices such as a flash-memory card reader are often connected to a host such as a personal computer (PC) by an expansion or peripheral bus such as Universal-Serial-Bus (USB). Such peripherals may plug directly into a USB socket on the host, or may have a cable with a plug that fits into the host's USB connector socket.
Newer versions of peripheral standards such as USB 3.0 offer higher speed transfers through faster clock rates, additional physical data lines, and more efficient framing and handshaking. Burst transfers may further improve throughput. Newer USB devices provide faster transfers when inserted into a host. The host may be able to detect USB devices and reduce throughput for these older devices when inserted into the more advanced host.
Some USB devices are embedded within the host system. The capacitance of the long USB cable is eliminated, replaced by a short cable, connector, or metal printed-circuit board (PCB) traces within the host, or even without a cable for directly plugging in.
Since memory on a USB device may be busy or slow, sometimes the host's request cannot be processed immediately. The host may send the request, then periodically poll the USB device to see whether the data is ready. Also, when the host is idle, the host may need to periodically poll the USB device to see if the USB device needs to transfer information to the host. This periodic polling may be used for other purposes as well, such as for polling a mouse for movement.
While polling is useful, since it allows the host to completely control the USB bus, power is consumed each time a packet is sent for polling. While this power is small, for low-power or battery-powered devices, the amount of power consumed may be significant and undesirable. Also, the USB device or host may otherwise be in a low-power sleep or suspend state, and have to wake up into a higher-power state to perform or respond to the polling. There may be significant time and energy required to wake up from the suspend or sleep state, and then to re-enter the suspend or sleep state once polling is done.
What is desired is a low-power card reader that can be accessed by a high-speed host. It is desirable to reduce power consumption for low-power USB devices that are accessed by the card reader.